機械学習読書会 第三章前半
ゼロから作るDeep leaning
復習の前に
機械学習のおさらい。
機械学習とは
解きたい問題を数値で扱えるようにする(数値モデル)
モデルに対する調整できる数値をパラメータという
データを用意して、パラメータを調整することを、学習という
https://gyazo.com/9d6b4471f118bb35bf740b50b3254a08
手書き入力の例
input: 手書き画像データ
output: 0~9の、それぞれの確率(2が99%です!みたいな)
極端な話、if文だってモデルとも言えるかも
https://www.slideshare.net/nishio/if-80195170
この機械学習の仕組みに沿った上で、
どんなモデルなのか、
学習のアルゴリズムなのか(パラメータの調整手順なのか)
といった違いがあり、そのうちの一つが深層学習(ディープラーニング)
モデル
物事を説明するための模型
目的に応じて、必要なモデルが異なる
人間のモデル
人体模型:骨とか筋肉を理解する
ロボット:人の代わりに動く
第二章の復習
パーセプトロン
単純な数式
$ w_1 x_1 + w_2 x_2 が0より大きいかどうか
wをパラメータという
パラメータをうまく作れば、ANDやORなどを作れるのをやった
XORは難しい
でも、複数の層を重ねればできるのを確認した
ディープラーニングの学習結果のvisualizationを挙げた
An Interactive Node-Link Visualization of Convolutional Neural Networks
https://gyazo.com/bd2a0a1cfe89da5380e7f7bdacd3182c
第三章
ニューラルネットワーク
パーセプトロンを組み合わせたもの
パーセプトロンの復習
$ y =
$ 0  ( b + w_1 x_1 + w_2 x_2 \le 0)
$ 1  ( b + w_1 x_1 + w_2 x_2 \gt 0)
この条件分岐のところを、hで表す
$ h(x) =
$ 0   ( x \le 0)
$ 1  ( x \gt 0)
すると$ y = h(b + w_1 x_1 + w_2 x_2)となる
https://gyazo.com/d71d7658fcd4ea2cd2c5e2224e6afb23
活性化関数
miyamonz.iconが考える、活性化関数の意味
「活性化した」という情報だけにしている
情報を減らしている
後に触れるように、非線形であることは重要
パーセプトロンの形の変更
バイアスが左側に
活性化関数の種類
いろいろある
都合とか
計算の氏やすさとか
ステップ関数
シグモイド関数
ReLU関数
補足:非線形関数
活性化関数は非線形なものを選ぶ
もしもそうでなかった場合、層を重ねても、すべて行列の積で計算できて、1層の場合と同じになってしまう
多次元配列、行列の積
行列の積の確認
例
インプットが2つ、アウトプットが3つ
https://gyazo.com/64fda0c64ac277749a6a32fee2265a11
$ y_1 = w_{11} x_1 + w_{12} x_2
$ y_2 = w_{21} x_1 + w_{22} x_2
$ y_3 = w_{31} x_1 + w_{32} x_2
これは
$ \begin{pmatrix} y_1 \\ y_2 \\ y_3 \end{pmatrix} = \begin{pmatrix} w_{11} & w_{12} \\ w_{21} & w_{22} \\ w_{31} & w_{32} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
こうあらわせる
行列というのは、同じ形の線形な連立方程式を束ねたもの
三層の実装
上に書いたようなものをこ、今度は3層でやっているのが3.4
1層ごとに
行列計算
活性化関数を通す
を繰り返しているということがわかる
行と列を間違えない覚え方
---.icon
めも
3章途中まで
3.3までにしようかな
せっかくなのでGPUについて触れたいけど難しいか
ReLUの発音?
シグモイド関数とReLUの違い、速さとかは?
ReLUはmax(0,x)なだけなので速そう
ディープラーニングが流行ったのは、
誤差逆伝播法によって深い層の学習ができるようになってから
それまでは、層を深くするとパラメータが増えすぎてうまく学習ができなかった